Groovy তে Constructors এবং Default Parameters
Constructors এবং Default Parameters দুটি গুরুত্বপূর্ণ ধারণা যা Groovy তে ক্লাস এবং অবজেক্ট তৈরি করার সময় ব্যবহৃত হয়। এগুলি কোড লেখার সময় লজিকালভাবে সুবিধাজনক হয় এবং কোডের পুনঃব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করে।
1. Constructors in Groovy
Constructor একটি বিশেষ ধরনের মেথড যা একটি ক্লাসের নতুন অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি সাধারণত ক্লাসের নামের সাথে মিল হয় এবং কোন ভ্যালু বা প্যারামিটার ছাড়া অবজেক্ট তৈরি করা হলে ডিফল্ট কন্সট্রাক্টর ব্যবহার করা হয়। Groovy তে কন্সট্রাক্টরের ব্যবহার Java এর মতোই, তবে Groovy এর বৈশিষ্ট্য অনুযায়ী এটি আরও সহজ এবং সংক্ষিপ্ত।
Groovy তে Constructor এর মৌলিক ব্যবহার:
Groovy তে, আপনি কন্সট্রাক্টর ডিফাইন করতে পারেন যেটি প্যারামিটার গ্রহণ করে এবং অবজেক্ট ইনিশিয়ালাইজ করে। যদি আপনি কন্সট্রাক্টর ডিফাইন না করেন, Groovy স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কন্সট্রাক্টর প্রদান করে।
উদাহরণ (Constructor with Parameters):
class Person {
String name
int age
// Constructor
Person(String name, int age) {
this.name = name
this.age = age
}
// Method to display details
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person = new Person("John", 30)
person.displayDetails() // Output: Name: John, Age: 30এখানে Person ক্লাসে একটি কন্সট্রাক্টর রয়েছে যা name এবং age প্যারামিটার গ্রহণ করে। যখন new Person("John", 30) কল করা হয়, তখন এই কন্সট্রাক্টর ব্যবহার করে অবজেক্ট তৈরি হয়।
Groovy তে Default Constructor:
যদি আপনি কন্সট্রাক্টর না দেন, তবে Groovy স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কন্সট্রাক্টর প্রদান করবে যা কোনো প্যারামিটার গ্রহণ করবে না।
class Person {
String name
int age
// Default constructor
}
def person = new Person() // No parameters, default constructor used
person.name = "Alice"
person.age = 25
println "Name: $person.name, Age: $person.age" // Output: Name: Alice, Age: 25এখানে, Person ক্লাসে কোনো কন্সট্রাক্টর ডিফাইন না করায় Groovy একটি ডিফল্ট কন্সট্রাক্টর ব্যবহার করেছে এবং পরে ভেরিয়েবলগুলির মান সেট করা হয়েছে।
2. Default Parameters in Groovy
Groovy তে আপনি default parameters ব্যবহার করতে পারেন, যা ফাংশন বা কন্সট্রাক্টরের প্যারামিটারগুলির জন্য ডিফল্ট মান প্রদান করে। যদি কোনো প্যারামিটার ফাংশন বা কন্সট্রাক্টর কল করার সময় প্রদান না করা হয়, তাহলে ডিফল্ট মানটি ব্যবহার করা হবে।
উদাহরণ (Default Parameters):
class Person {
String name
int age
// Constructor with default parameters
Person(String name = "Unknown", int age = 18) {
this.name = name
this.age = age
}
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person1 = new Person("John", 30)
def person2 = new Person()
person1.displayDetails() // Output: Name: John, Age: 30
person2.displayDetails() // Output: Name: Unknown, Age: 18এখানে, Person ক্লাসের কন্সট্রাক্টরে ডিফল্ট মান দেওয়া হয়েছে:
nameএর ডিফল্ট মান"Unknown"ageএর ডিফল্ট মান18
যখন new Person() কল করা হয়, কোনো প্যারামিটার না দেয়ার কারণে ডিফল্ট মানগুলি ব্যবহার করা হয়। আর যখন new Person("John", 30) কল করা হয়, তখন প্রদত্ত মানগুলোই ব্যবহার করা হয়।
ফাংশনে Default Parameters:
Groovy তে ফাংশনেও আপনি ডিফল্ট প্যারামিটার ব্যবহার করতে পারেন। এর ফলে ফাংশনে কোনো প্যারামিটার না দেওয়া হলে ডিফল্ট মান ব্যবহার করা হবে।
def greet(String name = "Guest") {
println "Hello, $name!"
}
greet("John") // Output: Hello, John!
greet() // Output: Hello, Guest!এখানে, greet ফাংশনে name প্যারামিটারের জন্য একটি ডিফল্ট মান "Guest" দেওয়া হয়েছে। যদি ফাংশন কল করার সময় name প্রদান করা না হয়, তাহলে "Guest" ব্যবহার হবে।
3. Constructor Overloading
Groovy তে, যেমন Java তে, কন্সট্রাক্টর ওভারলোডিং সম্ভব। আপনি একাধিক কন্সট্রাক্টর ডিফাইন করতে পারেন যা ভিন্ন ভিন্ন প্যারামিটার সংখ্যা বা টাইপ গ্রহণ করবে। তবে, Groovy তে এটি Java এর মতো কঠিন নয়, কারণ Groovy স্বয়ংক্রিয়ভাবে কমপ্লেক্স কন্সট্রাক্টরও পরিচালনা করতে পারে।
উদাহরণ (Constructor Overloading):
class Person {
String name
int age
// First constructor
Person(String name) {
this.name = name
this.age = 18 // Default age
}
// Second constructor
Person(String name, int age) {
this.name = name
this.age = age
}
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person1 = new Person("John")
def person2 = new Person("Alice", 30)
person1.displayDetails() // Output: Name: John, Age: 18
person2.displayDetails() // Output: Name: Alice, Age: 30এখানে, Person ক্লাসে দুটি কন্সট্রাক্টর রয়েছে:
- একটি কন্সট্রাক্টর যা শুধুমাত্র
nameগ্রহণ করে এবংageএর ডিফল্ট মান প্রদান করে। - আরেকটি কন্সট্রাক্টর যা
nameএবংageউভয়ই গ্রহণ করে।
সারসংক্ষেপ:
- Constructors: Groovy তে, constructors ক্লাসের অবজেক্ট তৈরি করতে ব্যবহৃত হয়। আপনি কন্সট্রাক্টর প্যারামিটারসহ অথবা ডিফল্ট কন্সট্রাক্টর ব্যবহার করতে পারেন।
- Default Parameters: Groovy তে, আপনি ফাংশন বা কন্সট্রাক্টরের প্যারামিটারগুলির জন্য ডিফল্ট মান প্রদান করতে পারেন, যাতে প্যারামিটার না দিলে ডিফল্ট মান ব্যবহার করা হয়।
- Constructor Overloading: Groovy তে, একাধিক কন্সট্রাক্টর ডিফাইন করা সম্ভব এবং এটি প্যারামিটার সংখ্যা বা টাইপের ওপর ভিত্তি করে কাজ করে।
এভাবে Groovy তে constructors এবং default parameters ব্যবহার করে কোডকে আরও নমনীয়, সহজ এবং পুনঃব্যবহারযোগ্য করা যায়।
Read more